home *** CD-ROM | disk | FTP | other *** search
- IBM Color Graphics Adapter (CGA)
-
- The original CGA was built with discrete logic around an MC6845 display
- controller.
-
- On the original CGA and some clones accessing the video memory during the
- active display time caused the display controller to miss some pixels (seen as
- "snow"), which is the reason many programs only accesses video memory during
- vertical or horizontal retrace. This is fixed in some clones and in EGA/VGA
- adapters.
-
- Basic features:
- 80x25 text modes in 16colors
- 320x200 4color graphics modes
- 640x200 2 color graphics mode
- TTL video interface (Red, Green, Blue and Intensity)
- 16KB Video RAM and 2KB ROM for 8x8 font.
-
-
- Clones:
- Commodore AGA:
- Combines CGA, MDA, Hercules and Plantronics support in one chip.
- Chips & Tech 82c425:
- Supports both CRT and LCD displays. Greyscale on LCD, supports two softfonts
- (up to 8x16 pixels) allowing 512 characters on screen. No Snow.
- Chips & Tech 82c426:
- Same as 82c425, but also supports Sleep mode, AT&T 400 line Graphics Mode,
- Color LCDs and upto 32KB video memory.
-
-
- 3D4h (W): Index register.
- The value written to this register selects which of the data
- registers will be accessed at 3D5h.
-
- 3D4h index 00h (W): Horizontal Total Register
- Bit 0-7 Number of characters (-1) in a scan line incl. retrace.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 01h (W): Horizontal Displayed Register
- Bit 0-7 Number of characters (-1) displayed during a scan line.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 02h (W): Horizontal Sync Position Register
- Bit 0-7 Number of characters displayed before Horizontal Sync pulse starts.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 03h (W): Horizontal Sync Width Register
- Bit 0-7 Number of character clocks during a Horizontal Sync pulse.
- Note: this register is ignored on the CT82c425/6.
-
- 3D4h index 04h (W): Vertical Total Register
- Bit 0-6 Number of character rows in a frame. This is adjusted by the number
- of scanlines in a character (index 9) and the Vertical Adjust (index
- 5).
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 05h (W): Vertical Total Adjust Register
- Bit 0-3 Number of scanlines added to the Vertical Total time.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 06h (W): Vertical Displayed Register
- Bit 0-6 Number of character rows displayed per frame.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 07h (W): Vertical SyncPosition Register
- Bit 0-6 Number of character rows displayed before the Vertical Sync pulse
- starts.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 08h (W): Interlace Mode Register
- Note: this register is ignored on the CT82c425/6 and F8680.
-
- 3D4h index 09h (W): Maximum Scan Line Register
- Bit 0-3 Number of scanlines (-1) in a character row.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 0Ah (W): Cursor Start Register
- Bit 0-4 The scanline (starting from 0) within the character where the
- cursor starts.
- 5-6 Cursor Attributes:
- 0,2: Cursor is blinking at the blink rate.
- 1: Cursor is turned off.
- 3: Cursor is blinking at half the blink rate.
- The default blink rate is 1/16 of the frame rate (8 frames on, 8
- off).
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 0Bh (W): Cursor End Register
- Bit 0-4 The scanline (starting from 0) within the character where the
- cursor ends. If the start position (index 0Ah) is larger than this
- value, no cursor is shown.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 0Ch (W): Start Address High Register
- Bit 0-5 The upper 6 bits of the address of the start of the display.
- The lower 8 bits are in index 0Dh.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 0Dh (W): Start Address Low Register
- Bit 0-7 The lower 8 bits of the address of the start of the display.
- The upper 6 bits are in index 0Ch.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 0Eh (W): Cursor Location High Register
- Bit 0-5 The upper 6 bits of the address of the start of the cursor.
- The lower 8 bits are in index 0Fh.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 0Fh (W): Cursor Location Low Register
- Bit 0-7 The lower 8 bits of the address of the start of the cursor.
- The upper 6 bits are in index 0Eh.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 10h (W): Light Pen High Register
- Bit 0-5 The upper 6 bits of the latched address of the lightpen strobe.
- The lower 8 bits are in index 11h.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index 11h (W): Light Pen Low Register
- Bit 0-7 The lower 8 bits of the latched address of the lightpen strobe.
- The upper 6 bits are in index 10h.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D4h index D3h (R/W): Grey-level Control Register #1 (CT82c426 only)
- bit 0-7 GC10-17. Parameter for the Monochrome Alternate GrayScale algorithm.
- Recommended value is 43h. Bit 3 should be 0.
-
- 3D4h index D4h (R/W): Grey-level Control Register #2 (CT82c426 only)
- bit 0-7 GC20-27. Parameter for the Monochrome Alternate GrayScale algorithm.
- Recommended value is E6h. Bits 3 and 7 should be 0.
-
- 3D4h index D5h (R/W): General-Purpose Register (CT82c426 only)
- bit 0 General Purpose I/O bit 1. Data to/from the GPIO1 pin.
- 1 General Purpose I/O 1 Three State Control.
- If set the GPIO1 pin is three-stated and can be used as an input.
- If clear the pin is an output.
- 2 General Purpose I/O 1 Mux Control.
- If set the GPIO1 pin is fed with the data in bit 0, if clear with the
- Display Enable bit (3DAh bit 0).
- 4 General Purpose I/O bit 2. Data to/from the GPIO2 pin.
- 5 General Purpose I/O 2 Three State Control.
- If set the GPIO2 pin is three-stated and can be used as an input.
- If clear the pin is an output.
- 6 General Purpose I/O 2 Mux Control.
- If set the GPIO2 pin is fed with the data in bit 4, if clear with the
- ROMCS/ signal
-
- 3D4h index D6h (R/W): Sleep Register (CT82c426 only)
- bit 0 Sleep Mode Software Enable. If a 1 is written to this bit, the 82c426
- enters sleep mode when the current display fetch completes.
- In sleep mode video memory can not be accessed and the SLEEP pin is
- driven high. If a 0 is written normal operation resumes.
- 1 (R) Sleep Mode Output. Reflects the state of the SLEEP output pin.
- 1 if the 82c426 is in sleep mode or if the Video Enable bit is 0.
-
- 3D4h index D7h (R/W): Panel Size Register (CT82c426 only)
- bit 0-7 Size of the upper panel (if a two panel system) in scanlines (-1).
-
- 3D4h index D8h (R/W): Panel Configuration Register (CT82c426 only)
- bit 0-2 LCD Mode. Panel type:
- 0: Single Panel, Single Drive
- 1: Dual-Panel, Single Drive
- 2: Dual-Panel, Dual Drive
- 3: Single Panel, 12bit color
- 4: Single Panel, 4bit color
- 3 Alternate FLM. If clear the FLM (First Line Marker) is generated as
- in the 82c425: Rising before the LP of the first line and falling
- after it. If set FLM rises when the last LP of the frame falls, and
- falls with the falling edge of the first LP of the frame.
- 4 Scan-Doubling Enabled. If set and bit 5 is 0, the scanlines are
- doubled.
- 5 AT&T Mode Enabled. If set the AT&T Mode register (3DEh) is enabled.
- If clear the AT&T register is inaccessible.
- 6-7 Memory Configuration 0-1.
- 0: 3 8Kx8 SRAM or 2 8Kx8 SRAM and 1 8Kx8 ROM.
- 1: 1 32Kx8 SRAM
- 2: 1 16Kx8 SRAM and 1 8Kx8 SRAM/ROM
- 3: 1 32Kx8 SRAM and 1 8Kx8 SRAM/ROM
-
- 3D4h index D9h (R/W): AC Control Register (CT82c425/6 only)
- Bit 0-4 The number of LCD Latch Pulses (-1) for which the AC signal is on
- and off (50% duty cycle)
- 7 If set the programmable AC signal is enabled. If clear, the AC signal
- remains ON for one frame and OFF for the next.
-
- 3D4h index DAh (R/W): Threshold Register (CT82c425/6 only)
- Bit 0-3 Threshold Value.
- 4 Saturation. If set the shifts in fore- and background colors by
- SMARTMAP is limited to the saturation points, if clear the
- colormapping will be modulo 16
- 5 Four Grey Scale Bit. If set 4 grey scales is selected, if clear 8
- grey scales is selected for text modes.
- 6 (82c426 only) Alternate Graylevel Algorithm.
-
- 3D4h index DBh (R/W): Shift Parameter Register (CT82c425/6 only)
- Bit 0-3 Foreground Shift. The amount of shift for ForeGround colors in the
- text grey scale scheme.
- 4-7 Background Shift.
-
- 3D4h index DCh (R/W): Horizontal Sync Width Register (CT82c425/6 only)
- Bit 0-7 Number of Dot clocks in the HSYNC pulse.
-
- 3D4h index DDh (R/W): Vertical Sync Width Register (CT82c425/6 only)
- Bit 0-3 Vertical Sync Width in scanlines (-1).
- 4-7 Blink rate of characters. The character will be on for (value+1)
- frames and off for the same number of frames.
- The cursor blink rate is twice the character blink rate.
-
- 3D4h index DEh (R/W): Shift Parameter Register (CT82c425/6 only)
- Bit 0-4 (82c425 only) ECLK. The number of output clock pulses (-1) per pulse
- of the ENABLE CLOCK for the LCD panel
- 0-3 (82c426 only) (R) Silicon Revision.
- 5 CLK SEL. 0 selects the CLK1 input as the master clock source, 1
- selects the CLK2 input.
- 6-7 CCLK DIV 0-1. Determines the panel shift clock (PCLK) and pixel
- clock.
- Value: Pixel freq: PCLK (LCD):
- 0 CLKIN CLKIN/4
- 1 CLKIN/2 CLKIN/8
- 2 CLKIN/3 CLKIN/12
- 3 CLKIN/4 CLKIN/16
-
- 3D4h index DFh (R/W): Function Control Register (CT82c425/6 only)
- Bit 0 Decode Enable. If clear all accesses to the video memory and the 3Dxh
- registers will be disabled, except for writes to this bit.
- When set the memory and registers are accessible.
- 1 Font Enable. If set the font memory can be accessed at B8000h-B9FFFh.
- If clear the font memory is inaccessible.
- 2 Font Select. If set the font at B9000h is selected, if clear the font
- at B8000h is the default.
- 3 If set the CRT output is selected, if clear the LCD.
- 4 (LCD only) Status Control. Controls the behavior of the Display
- Enable bit (3DAh bit 0) and Vertical Sync bit (3DAh bit 3).
- If clear, the Display Enable bit toggles every 16 character clocks,
- and the Vertical Sync bit is active during the first scanline.
- If set the Display Enable bit is active during the first 16 character
- clocks of each scanline, and from row 22 till the end of the panel in
- text modes (row 85 in graphics modes). The Vertical Sync bit is
- active through all scanlines of row 24 in textmodes (row 93 - 96 incl
- in graphics modes).
- 5 (LCD only) Enable Control.
- 6 If set bit 3 of the attribute byte selects the font, rather than
- intensity.
- 7 If set the video outputs are inverted.
-
- 3D8h (W): Mode Control register
- bit 0 80x25 Alpha mode if set, 40x25 else
- 1 Graphics mode if set, alpha else.
- 2 BW mode if set, color else
- 3 Video Enable. Enable video signal if set
- 4 640x200 Graphics mode if set, 320x200 else
- 5 if set bit 7 of the attribute controls background, else blink
- Note: this register is Read/Write on the CT82c425/6.
-
- 3D9h (W): Color Select register
- The function of this register depends on the active mode.
- Text modes: 320x200 modes: 640x200 mode:
- Bit 0 Blue border Blue background Blue ForeGround
- 1 Green border Green background Green ForeGround
- 2 Red border Red background Red ForeGround
- 3 Bright border Bright background Bright ForeGround
- 4 Backgr. color Alt. intens. colors Alt. intens colors
- 5 No func. Selects palette
- Palette 0 is Green, red and brown,
- Palette 1 is Cyan, magenta and white.
- Note: this register is Read/Write on the CT82c425/6.
-
- 3DAh (R): Status register
- bit 0 Display Enable. If set Horizontal or Vertical Retrace is active and
- the video memory may be accessed by the PC.
- 1 Lightpen trigger has occurred if set
- 2 Lightpen switch is off if set
- 3 Vertical Sync. Vertical retrace active if set.
- Video RAM can be accessed for the next 1.25 ms.
- Note: The CT82c425/6 modifies bits 0 and 3 for LCD panels. See 3D4h index DFh.
-
- 3DBh (R/W) Clear Light Pen Strobe
- Reading or writing this register clears the lightpen strobe. This can happen
- before or after the lightpen position is read from 3D4h index 10h-11h.
-
- 3DCh (R/W): Set Light Pen Strobe
- Reading or writing this register sets the lightpen strobe, causing the
- lightpen position to be latched to 3D4h index 10h-11h.
- The strobe must be cleared by accessing register 3DBh.
-
- 3DDh (W): (AGA - Plantronics)
- bit 4 Set for 320x200 16color mode, clear for all other (16color?) modes
- 5 Set for 640x200 4color mode, clear for all other (4color?) modes
- 6 If set plane0 is at BC000h-BFFFFh and plane1 at B8000h-BBFFFh,
- if clear plane0 is at B8000h-BBFFFh and plane1 at BC000h-BFFFFh,
- 7 Set for 640x200 16color mode, clear for all other (16color?) modes.
-
- 3DEh (R/W): AT&T Mode Register (CT82c426 only)
- bit 0 AT&T Mode. Only effective if 3D4h index D8h bit 5 is set.
- If clear text modes are displayed as 16line characters and graphics
- modes are displayed 200 line scandoubled resolution.
- If set text modes are displayed with 16line characters and graphics
- modes are displayed as true 400 line modes.
- 3 Page Select. If set display memory is in the 16KB starting from
- BC000h, if clear in the 16KB starting at B8000h. If there is less
- than 32KB of video memory this has no effect.
- 6 Enable Underline. If set bit 0 of the attribute byte selects
- underline (as in the MDA), if clear it selects blue ForeGround.
- Note: this register is only accessible if 3D4h index D8h bit 5 is set.
-
- 3DFh (W): (AGA - Plantronics)
- bit 3 132column monochrome text mode
- 4 132column color text mode (3D8h bit 0 must be set)
- 5 Set emulation mode in lieu of DIP switch
- 6 Set monochrome mode in lieu of DIP switch
- 7 Set color mode in lieu of DIP switch
-
-
- Video Modes:
-
- 00h T 40 25 2 (8x8)
- 01h T 40 25 2 (8x8)
- 02h T 80 25 16 (8x8)
- 03h T 80 25 16 (8x8)
- 04h G 320 200 4
- 05h G 320 200 4
- 06h G 640 200 2
-